﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;

public class OozeObject:DangerousObject
{
    protected new OozeObject.Type thisType;

    public OozeObject(OozeObject.Type type, Vector3 placement)
        : base(type, placement)
    {
        thisType = type;
    }

    public new class Type : DangerousObject.Type
    {
        public static readonly Type Ooze = new Type(
            ObjectFactory.TypeEnum.Ooze,//type
            new Vector3(80, 0, 0),//origin
            new Vector3(170, 0, 140),//collision
            new ArrayList {
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("oozeSpriteSheet"), 
                    new Rectangle(0,0,394,135), 
                    0, 
                    new Vector2(197,90)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("oozeSpriteSheet"), 
                    new Rectangle(394,0,394,135), 
                    0, 
                    new Vector2(197,90)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("oozeSpriteSheet"), 
                    new Rectangle(788,0,394,135), 
                    0, 
                    new Vector2(197,90)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("oozeSpriteSheet"), 
                    new Rectangle(1182,0,394,135), 
                    0, 
                    new Vector2(197,90)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("oozeSpriteSheet"), 
                    new Rectangle(0,135,394,135), 
                    0, 
                    new Vector2(197,90)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("oozeSpriteSheet"), 
                    new Rectangle(394,135,394,135), 
                    0, 
                    new Vector2(197,90)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("oozeSpriteSheet"), 
                    new Rectangle(788,135,394,135), 
                    0, 
                    new Vector2(197,90)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("oozeSpriteSheet"), 
                    new Rectangle(1182,135,394,135), 
                    0, 
                    new Vector2(197,90)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("oozeSpriteSheet"), 
                    new Rectangle(0,270,394,135), 
                    0, 
                    new Vector2(197,90)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("oozeSpriteSheet"), 
                    new Rectangle(394,270,394,135), 
                    0, 
                    new Vector2(197,90)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("oozeSpriteSheet"), 
                    new Rectangle(788,270,394,135), 
                    0, 
                    new Vector2(197,90)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("oozeSpriteSheet"), 
                    new Rectangle(1182,270,394,135), 
                    0, 
                    new Vector2(197,90)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("oozeSpriteSheet"), 
                    new Rectangle(0,405,394,135), 
                    0, 
                    new Vector2(197,90)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("oozeSpriteSheet"), 
                    new Rectangle(394,405,394,135), 
                    0, 
                    new Vector2(197,90)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("oozeSpriteSheet"), 
                    new Rectangle(788,405,394,135), 
                    0, 
                    new Vector2(197,90)),
                new Frame(
                    Game.getGame().getAssetLibrary().get(AssetLibrary.assetType.HAZARD).get("oozeSpriteSheet"), 
                    new Rectangle(1182,405,394,135), 
                    0, 
                    new Vector2(197,90))});//frameList

        protected Type(ObjectFactory.TypeEnum type, Vector3 origin, Vector3 collision,
            ArrayList stasisFrames)
            : base(type, origin, collision, stasisFrames)
        {
        }

        public static new OozeObject.Type getType(ObjectFactory.TypeEnum te)
        {
            switch (te)
            {
                case ObjectFactory.TypeEnum.Ooze: return Ooze;
            }
            return null;
        }
    }
}
